package com.ft.oa.domain.development;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ft.oa.domain.Attachment;
import com.ft.oa.domain.dto.knowledgeBase.AttachmentDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.web.multipart.MultipartFile;

import java.time.LocalDateTime;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "need_analyse")
public class NeedAnalyse {

    /**ID**/
    @TableId(type = IdType.AUTO)
    private Long id;

    /**需求ID**/
    private Long needId;//必传

    /**附件ID**/
    private Long attachmentRelId;

    /** 附件名称 */
    private String docName;

    /** 附件类型 */
    private String docType;


    /**
     * 版本号
     */
    private String version;
    /**
     * 作者
     */
    private String author;
    /**
     * 提交人id
     */
    private Long submitId;

    /**
     * 提交人姓名
     */
    private String submitUser;

    /**
     * 数据状态 状态（0：存在，1：删除）
     */
    private Integer state;

    /**
     * 备注
     */
    private String remark;
    /**
     * 更新时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /** 创建时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /** 删除时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime delTime;

    @TableField(exist = false)
    private List<AttachmentDto> attachments; //前端返回的接受对象

    private String attachmentRel; // 存库字段  json类型的

    /**
     * 页数
     */
    @TableField(exist = false)
    private int page;
    /**
     * 每页条数
     */
    @TableField(exist = false)
    private int size;

    @TableField(exist = false)
    private String chargePersonName;

}
